package com.klcw.proxy.jdc;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

/**
 * @ClassName MeiPo
 * @Description 代理执行者
 * @Author dukang
 * @Date 2018/11/30 0:17
 * @Version 1.0
 **/
public class MeiPo implements InvocationHandler {

    //保存被代理对象的引用
    private Person p;

    // 首先获取代理对象的资料
    public Object getInstance(Person person){
        this.p = person;
        // 代理类加载器    实现的接口    代理人
        return Proxy.newProxyInstance(person.getClass().getClassLoader(), person.getClass().getInterfaces(), this);
    }


    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("你的性别是：" + this.p.getSex());
        this.p.findLove();
        System.out.println("可以");
        return null;
    }
}
